package com.gxa.javaserver.socket;

import org.springframework.stereotype.Component;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author:Teacher黄
 * @date:Created at 2020/06/16
 */
@SuppressWarnings("all")
public class Server {


    public Server() throws IOException {
        // 指定一个端口
        Integer port = 9527;
        // 注册服务端的socket对象, 注册服务
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("socket服务注册成功!");
        // 监听客户端的连接 => 阻塞的状态
        // 如果没有客户端连接, 那么程序就不会向下运行
        System.out.println("等待客户端的连接......");
//        Socket accept = serverSocket.accept();
//        // 获取连接客户端的信息
//        InetAddress inetAddress = accept.getInetAddress();
//        // ip地址
//        String ipAddress = inetAddress.getHostAddress();
//        System.out.println("客户端:"+ipAddress+"-连接成功!");
//        // 准备输入输出流,进行数据交互
//        // 输入流的包装
//        DataInputStream dataInputStream = new DataInputStream(accept.getInputStream());
//        // 输出流的包装
//        DataOutputStream dataOutputStream = new DataOutputStream(accept.getOutputStream());
//        // 接收消息
//        String msg = dataInputStream.readUTF();
//        System.out.println("客户端:"+msg);
//        // 向客户端发送消息
//        dataOutputStream.writeUTF("我是唐伯虎!");
//
//        // 释放资源
//        dataInputStream.close();
//        dataOutputStream.close();
//        accept.close();
//        serverSocket.close();
        while (true){
            // 监听=>阻塞
            Socket accept = serverSocket.accept();
            // 创建并启动线程
            new ServerThread2(accept).start();
        }

    }

}
